﻿using SWBetongXaydung.GUI.Common;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using SWBetongXaydung.GUI.Utils;

namespace SWBetongXaydung.GUI.HeThong
{
    public partial class FormDangNhap : BaseDialog
    {
        private DAL.NguoiSuDung m_NguoiSuDung = null;
        public DAL.NguoiSuDung NguoiSuDung
        {
            get { return m_NguoiSuDung; }
            private set { m_NguoiSuDung = value; }
        }

        public FormDangNhap()
        {
            InitializeComponent();
        }

        private void btnDongY_Click(object sender, EventArgs e)
        {
            try
            {
                var tenDangNhap = txtTenDangNhap.Text;
                var matKhau = txtMatKhau.Text;
                var bw = new BackgroundWorker();
                bw.DoWork += (oSender, oE) =>
                {
                    oE.Result = BLL.HeThong.GetNguoiSuDung(tenDangNhap, matKhau);
                };
                bw.RunWorkerCompleted += (oSender, oE) =>
                {
                    if (this.Visible == false)
                        return;
                    picProgress.Visible = false;
                    btnDongY.Enabled = btnBoQua.Enabled = true;
                    if (oE.Error != null)
                    {
                        Utils.DialogUtils.ShowMessage("Lỗi trong quá trình đăng nhập " + oE.Error.Message);
                    }
                    else
                    {
                        if (oE.Result == null || !(oE.Result is DAL.NguoiSuDung))
                        {
                            Utils.DialogUtils.ShowMessage("Thông tin đăng nhập không hợp lệ");
                            txtMatKhau.Clear();
                            txtTenDangNhap.Focus();
                        }
                        else //if (this.NguoiSuDung != null)
                        {
                            this.NguoiSuDung = oE.Result as DAL.NguoiSuDung;
                            //Kiểm tra người sử dụng còn có quyến sử dụng hệ thống hay không
                            if (false)//this.NguoiSuDung.IsActive == 
                            {
                                DialogUtils.ShowMessage("Bạn đã bị thu quyền sử dụng trên hệ thống.\n\rVui lòng liên hệ với quản trị viên");
                                txtMatKhau.Clear();
                                txtTenDangNhap.Focus();
                                this.NguoiSuDung = null;
                            }
                            else
                            {
                                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                                this.Close();
                            }
                        }
                    }
                };
                picProgress.Visible = true;
                btnDongY.Enabled = btnBoQua.Enabled = false;
                bw.RunWorkerAsync();
            }
            catch (Exception ex)
            {
                DialogUtils.ShowError("Lỗi đăng nhập. Chi tiết: " + ex.Message);
            }
        }

        private void txtMatKhau_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r' && e.KeyChar == (char)Keys.Enter)
                btnDongY.PerformClick();
        }

        private void FormDangNhap_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.Alt && e.Shift && e.KeyCode == Keys.F12)
            {
                var frm = new HeThong.FormThietLapChuoiKetNoi()
                {
                    StartPosition = FormStartPosition.CenterScreen,
                    TopMost = true
                };
                frm.ShowDialog();
                frm.Dispose();
                frm = null;
            }
        }
    }
}
